// // 第一段代码：没有friend权限（这段会报错）
// #include <iostream>

// class Diary {
// private:
//     int secretNumber = 42;  // 这是日记本里的秘密数字
// };

// class Stranger {
// public:
//     void tryToReadDiary(Diary& diary) {
//         // 想偷看日记里的秘密数字
//         std::cout << diary.secretNumber;  // 错误！不是好朋友，看不了！
//     }
// };

// int main() {
//     Diary diary;
//     Stranger stranger;
//     stranger.tryToReadDiary(diary);
//     return 0;
// }

// 第二段代码：有friend权限（这段能正常运行）
#include <iostream>

class Diary {
private:
    int secretNumber = 42;  // 这是日记本里的秘密数字
    
    // 声明"BestFriend"是好朋友！
    friend class BestFriend;
};

class BestFriend {
public:
    void readDiary(Diary& diary) {
        // 因为是好朋友，所以能看到秘密数字
        std::cout << "偷看到的秘密数字是：" << diary.secretNumber << std::endl;
    }
};

int main() {
    Diary diary;
    BestFriend friend1;
    friend1.readDiary(diary);  // 这次能成功偷看！
    return 0;
}